package magazyn;

import interfejsy.ConnectPRO;

import java.awt.Choice;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class UsunProdukt extends JPanel {

	private static final long serialVersionUID = 1L;

	private ResultSet result = null;
	private ResultSet result1 = null;
	private ResultSet result2 = null;
	private ResultSet result3 = null;
	private Statement state = null;
	private Statement state2 = null;
	private Statement state3 = null;
    private Choice lista_produktow = new Choice();

	
//-----------------------pobranie produktow do listy rozwijanej---------------------------------
    
	public ResultSet pobierz_produkty() throws SQLException{
    		try{
    			
    			state = ConnectPRO.connect.createStatement();
    			result = state.executeQuery("select nazwa from produkty where id_produktu in (select id_produktu from magazyn)");
    			
    		}catch(SQLException e){
    			System.out.println("Nie mozna uzupelnic listy!");
    		}
    		
    		return result;
    	}

	
	JTextField ilosc = new JTextField(3);
	JButton usun = new JButton("Usun");
	JOptionPane alert = new JOptionPane();
	JLabel etykieta = new JLabel("Aby sprawdzic ilosc przedmiotow, w menu wybierz Sprawdz Stan!");
	

	public UsunProdukt() throws SQLException{
        result1=pobierz_produkty();
        try {
			while(result1.next()){
				
				lista_produktow.add(result1.getString("nazwa")); // przypisanie kolejnym atrybutom listy rozwijanej rekordow pobranych z BD

			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
        
        
 //-------------------------------Akcja dla przycisku usun--------------------------------------------       
        usun.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					usun(arg0);
					JOptionPane.showMessageDialog(null, "Usunieto wskazana ilosc towaru!");
				} catch (SQLException e) {
					JOptionPane.showMessageDialog(null, "Wystapil blad przy usuwaniu!");
					e.printStackTrace();
				}
			}

			
			
			//--------------------Usuwanie wybranej ilosci sztuk danego towaru----------------------------
			private void usun(ActionEvent arg0) throws SQLException {
				Statement st = ConnectPRO.connect.createStatement();
				String sztuki = ilosc.getText();
				st.executeUpdate("UPDATE magazyn SET aktualny_stan=aktualny_stan-'" + sztuki + "' WHERE id_produktu=(select id_produktu from produkty where nazwa='"+ lista_produktow.getSelectedItem() +"')");
				state2 = ConnectPRO.connect.createStatement();
				result2 = state2.executeQuery("select id_produktu from produkty where nazwa='"+ lista_produktow.getSelectedItem() +"'");
				while (result2.next()) {
					
					String idproduktu = result2.getString("id_produktu");
				
				//-----------Pobranie rozmiaru usuwanego produktu-------------------------------
				state3 = ConnectPRO.connect.createStatement();
				result3 = state3.executeQuery("select rozmiar from kategoria where id_kategorii=(select id_kategorii from produkty where id_produktu='"+ idproduktu +"')");
				while (result3.next()) {
					String rozmiar_prod = result3.getString("rozmiar");
					Statement st2 = ConnectPRO.connect.createStatement();
					//--------------------Aktualizacja miejsca na magazynie--------------------------------
					st2.executeUpdate("UPDATE magazyn_miejsce SET miejsce=miejsce+('" + rozmiar_prod + "' * '" + sztuki + "')");
				}
				}
			}
		});
        
        add(etykieta);
        add(lista_produktow);
        add(ilosc);
        add(usun);
        
        
	}
}
